#pragma once
#include "../../../PresentMonAPI2/PresentMonAPI.h"

// defining unit groups and conversions X_(id, baseId, scale)
#define UNIT_LIST(X_) \
	X_(PM_UNIT_DIMENSIONLESS, PM_UNIT_DIMENSIONLESS, 1.)  \
	X_(PM_UNIT_RATIO, PM_UNIT_RATIO, 1.)  \
	X_(PM_UNIT_BOOLEAN, PM_UNIT_BOOLEAN, 1.) \
	X_(PM_UNIT_PERCENT, PM_UNIT_RATIO, 100.) \
	X_(PM_UNIT_FPS, PM_UNIT_FPS, 1.) \
	X_(PM_UNIT_MICROSECONDS, PM_UNIT_SECONDS, 0.000'001) \
	X_(PM_UNIT_MILLISECONDS, PM_UNIT_SECONDS, 0.001) \
	X_(PM_UNIT_SECONDS, PM_UNIT_SECONDS, 1.) \
	X_(PM_UNIT_MINUTES, PM_UNIT_SECONDS, 60.) \
	X_(PM_UNIT_HOURS, PM_UNIT_SECONDS, 3600.) \
	X_(PM_UNIT_MILLIWATTS, PM_UNIT_WATTS, 3600.) \
	X_(PM_UNIT_WATTS, PM_UNIT_WATTS, 3600.) \
	X_(PM_UNIT_KILOWATTS, PM_UNIT_WATTS, 3600.) \
	X_(PM_UNIT_VERTICAL_BLANKS, PM_UNIT_VERTICAL_BLANKS, 1.) \
	X_(PM_UNIT_MILLIVOLTS, PM_UNIT_VOLTS, 0.001) \
	X_(PM_UNIT_VOLTS, PM_UNIT_VOLTS, 1.) \
	X_(PM_UNIT_HERTZ, PM_UNIT_HERTZ, 1.) \
	X_(PM_UNIT_KILOHERTZ, PM_UNIT_HERTZ, 1'000.) \
	X_(PM_UNIT_MEGAHERTZ, PM_UNIT_HERTZ, 1'000'000.) \
	X_(PM_UNIT_GIGAHERTZ, PM_UNIT_HERTZ, 1'000'000'000.) \
	X_(PM_UNIT_CELSIUS, PM_UNIT_CELSIUS, 1.) \
	X_(PM_UNIT_RPM, PM_UNIT_RPM, 1.) \
	X_(PM_UNIT_BITS_PER_SECOND, PM_UNIT_BITS_PER_SECOND, 1.) \
	X_(PM_UNIT_KILOBITS_PER_SECOND, PM_UNIT_BITS_PER_SECOND, 1'024.) \
	X_(PM_UNIT_MEGABITS_PER_SECOND, PM_UNIT_BITS_PER_SECOND, 1'048'576.) \
	X_(PM_UNIT_GIGABITS_PER_SECOND, PM_UNIT_BITS_PER_SECOND, 1'073'741'824.) \
	X_(PM_UNIT_BYTES, PM_UNIT_BYTES, 1.) \
	X_(PM_UNIT_KILOBYTES, PM_UNIT_BYTES, 1'024.) \
	X_(PM_UNIT_MEGABYTES, PM_UNIT_BYTES, 1'048'576.) \
	X_(PM_UNIT_GIGABYTES, PM_UNIT_BYTES, 1'073'741'824.) \
	X_(PM_UNIT_QPC, PM_UNIT_QPC, 1.)
	